package com.onedec.attendance.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OnedecCheckingInExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OnedecCheckingInExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andInAttAttgroupIdIsNull() {
            addCriterion("in_att_attgroup_id is null");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdIsNotNull() {
            addCriterion("in_att_attgroup_id is not null");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdEqualTo(Integer value) {
            addCriterion("in_att_attgroup_id =", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdNotEqualTo(Integer value) {
            addCriterion("in_att_attgroup_id <>", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdGreaterThan(Integer value) {
            addCriterion("in_att_attgroup_id >", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("in_att_attgroup_id >=", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdLessThan(Integer value) {
            addCriterion("in_att_attgroup_id <", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdLessThanOrEqualTo(Integer value) {
            addCriterion("in_att_attgroup_id <=", value, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdIn(List<Integer> values) {
            addCriterion("in_att_attgroup_id in", values, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdNotIn(List<Integer> values) {
            addCriterion("in_att_attgroup_id not in", values, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdBetween(Integer value1, Integer value2) {
            addCriterion("in_att_attgroup_id between", value1, value2, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInAttAttgroupIdNotBetween(Integer value1, Integer value2) {
            addCriterion("in_att_attgroup_id not between", value1, value2, "inAttAttgroupId");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursIsNull() {
            addCriterion("in_morning_hours is null");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursIsNotNull() {
            addCriterion("in_morning_hours is not null");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursEqualTo(Date value) {
            addCriterion("in_morning_hours =", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursNotEqualTo(Date value) {
            addCriterion("in_morning_hours <>", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursGreaterThan(Date value) {
            addCriterion("in_morning_hours >", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursGreaterThanOrEqualTo(Date value) {
            addCriterion("in_morning_hours >=", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursLessThan(Date value) {
            addCriterion("in_morning_hours <", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursLessThanOrEqualTo(Date value) {
            addCriterion("in_morning_hours <=", value, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursIn(List<Date> values) {
            addCriterion("in_morning_hours in", values, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursNotIn(List<Date> values) {
            addCriterion("in_morning_hours not in", values, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursBetween(Date value1, Date value2) {
            addCriterion("in_morning_hours between", value1, value2, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningHoursNotBetween(Date value1, Date value2) {
            addCriterion("in_morning_hours not between", value1, value2, "inMorningHours");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeIsNull() {
            addCriterion("in_morning_closing_time is null");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeIsNotNull() {
            addCriterion("in_morning_closing_time is not null");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeEqualTo(Date value) {
            addCriterion("in_morning_closing_time =", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeNotEqualTo(Date value) {
            addCriterion("in_morning_closing_time <>", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeGreaterThan(Date value) {
            addCriterion("in_morning_closing_time >", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("in_morning_closing_time >=", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeLessThan(Date value) {
            addCriterion("in_morning_closing_time <", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeLessThanOrEqualTo(Date value) {
            addCriterion("in_morning_closing_time <=", value, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeIn(List<Date> values) {
            addCriterion("in_morning_closing_time in", values, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeNotIn(List<Date> values) {
            addCriterion("in_morning_closing_time not in", values, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeBetween(Date value1, Date value2) {
            addCriterion("in_morning_closing_time between", value1, value2, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInMorningClosingTimeNotBetween(Date value1, Date value2) {
            addCriterion("in_morning_closing_time not between", value1, value2, "inMorningClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursIsNull() {
            addCriterion("in_afternoon_hours is null");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursIsNotNull() {
            addCriterion("in_afternoon_hours is not null");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursEqualTo(Date value) {
            addCriterion("in_afternoon_hours =", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursNotEqualTo(Date value) {
            addCriterion("in_afternoon_hours <>", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursGreaterThan(Date value) {
            addCriterion("in_afternoon_hours >", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursGreaterThanOrEqualTo(Date value) {
            addCriterion("in_afternoon_hours >=", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursLessThan(Date value) {
            addCriterion("in_afternoon_hours <", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursLessThanOrEqualTo(Date value) {
            addCriterion("in_afternoon_hours <=", value, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursIn(List<Date> values) {
            addCriterion("in_afternoon_hours in", values, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursNotIn(List<Date> values) {
            addCriterion("in_afternoon_hours not in", values, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursBetween(Date value1, Date value2) {
            addCriterion("in_afternoon_hours between", value1, value2, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonHoursNotBetween(Date value1, Date value2) {
            addCriterion("in_afternoon_hours not between", value1, value2, "inAfternoonHours");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeIsNull() {
            addCriterion("in_afternoon_closing_time is null");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeIsNotNull() {
            addCriterion("in_afternoon_closing_time is not null");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeEqualTo(Date value) {
            addCriterion("in_afternoon_closing_time =", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeNotEqualTo(Date value) {
            addCriterion("in_afternoon_closing_time <>", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeGreaterThan(Date value) {
            addCriterion("in_afternoon_closing_time >", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("in_afternoon_closing_time >=", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeLessThan(Date value) {
            addCriterion("in_afternoon_closing_time <", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeLessThanOrEqualTo(Date value) {
            addCriterion("in_afternoon_closing_time <=", value, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeIn(List<Date> values) {
            addCriterion("in_afternoon_closing_time in", values, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeNotIn(List<Date> values) {
            addCriterion("in_afternoon_closing_time not in", values, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeBetween(Date value1, Date value2) {
            addCriterion("in_afternoon_closing_time between", value1, value2, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInAfternoonClosingTimeNotBetween(Date value1, Date value2) {
            addCriterion("in_afternoon_closing_time not between", value1, value2, "inAfternoonClosingTime");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdIsNull() {
            addCriterion("in_qunzhu_id is null");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdIsNotNull() {
            addCriterion("in_qunzhu_id is not null");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdEqualTo(Integer value) {
            addCriterion("in_qunzhu_id =", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdNotEqualTo(Integer value) {
            addCriterion("in_qunzhu_id <>", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdGreaterThan(Integer value) {
            addCriterion("in_qunzhu_id >", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("in_qunzhu_id >=", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdLessThan(Integer value) {
            addCriterion("in_qunzhu_id <", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdLessThanOrEqualTo(Integer value) {
            addCriterion("in_qunzhu_id <=", value, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdIn(List<Integer> values) {
            addCriterion("in_qunzhu_id in", values, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdNotIn(List<Integer> values) {
            addCriterion("in_qunzhu_id not in", values, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdBetween(Integer value1, Integer value2) {
            addCriterion("in_qunzhu_id between", value1, value2, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInQunzhuIdNotBetween(Integer value1, Integer value2) {
            addCriterion("in_qunzhu_id not between", value1, value2, "inQunzhuId");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameIsNull() {
            addCriterion("in_checking_name is null");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameIsNotNull() {
            addCriterion("in_checking_name is not null");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameEqualTo(String value) {
            addCriterion("in_checking_name =", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameNotEqualTo(String value) {
            addCriterion("in_checking_name <>", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameGreaterThan(String value) {
            addCriterion("in_checking_name >", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameGreaterThanOrEqualTo(String value) {
            addCriterion("in_checking_name >=", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameLessThan(String value) {
            addCriterion("in_checking_name <", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameLessThanOrEqualTo(String value) {
            addCriterion("in_checking_name <=", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameLike(String value) {
            addCriterion("in_checking_name like", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameNotLike(String value) {
            addCriterion("in_checking_name not like", value, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameIn(List<String> values) {
            addCriterion("in_checking_name in", values, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameNotIn(List<String> values) {
            addCriterion("in_checking_name not in", values, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameBetween(String value1, String value2) {
            addCriterion("in_checking_name between", value1, value2, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingNameNotBetween(String value1, String value2) {
            addCriterion("in_checking_name not between", value1, value2, "inCheckingName");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2IsNull() {
            addCriterion("in_checking_in2 is null");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2IsNotNull() {
            addCriterion("in_checking_in2 is not null");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2EqualTo(String value) {
            addCriterion("in_checking_in2 =", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2NotEqualTo(String value) {
            addCriterion("in_checking_in2 <>", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2GreaterThan(String value) {
            addCriterion("in_checking_in2 >", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2GreaterThanOrEqualTo(String value) {
            addCriterion("in_checking_in2 >=", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2LessThan(String value) {
            addCriterion("in_checking_in2 <", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2LessThanOrEqualTo(String value) {
            addCriterion("in_checking_in2 <=", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2Like(String value) {
            addCriterion("in_checking_in2 like", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2NotLike(String value) {
            addCriterion("in_checking_in2 not like", value, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2In(List<String> values) {
            addCriterion("in_checking_in2 in", values, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2NotIn(List<String> values) {
            addCriterion("in_checking_in2 not in", values, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2Between(String value1, String value2) {
            addCriterion("in_checking_in2 between", value1, value2, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn2NotBetween(String value1, String value2) {
            addCriterion("in_checking_in2 not between", value1, value2, "inCheckingIn2");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3IsNull() {
            addCriterion("in_checking_in3 is null");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3IsNotNull() {
            addCriterion("in_checking_in3 is not null");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3EqualTo(String value) {
            addCriterion("in_checking_in3 =", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3NotEqualTo(String value) {
            addCriterion("in_checking_in3 <>", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3GreaterThan(String value) {
            addCriterion("in_checking_in3 >", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3GreaterThanOrEqualTo(String value) {
            addCriterion("in_checking_in3 >=", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3LessThan(String value) {
            addCriterion("in_checking_in3 <", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3LessThanOrEqualTo(String value) {
            addCriterion("in_checking_in3 <=", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3Like(String value) {
            addCriterion("in_checking_in3 like", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3NotLike(String value) {
            addCriterion("in_checking_in3 not like", value, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3In(List<String> values) {
            addCriterion("in_checking_in3 in", values, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3NotIn(List<String> values) {
            addCriterion("in_checking_in3 not in", values, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3Between(String value1, String value2) {
            addCriterion("in_checking_in3 between", value1, value2, "inCheckingIn3");
            return (Criteria) this;
        }

        public Criteria andInCheckingIn3NotBetween(String value1, String value2) {
            addCriterion("in_checking_in3 not between", value1, value2, "inCheckingIn3");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}